<?php

namespace Database\Seeders;

use App\Models\Permission;
use App\Models\Role;
use Illuminate\Database\Seeder;

class RoleSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        // 创建超级管理员角色
        $superAdminRole = Role::updateOrCreate([
            'slug' => 'super_admin'
        ], [
            'name' => '超级管理员',
            'description' => '拥有所有权限的超级管理员',
            'status' => 1
        ]);

        // 创建普通管理员角色
        $adminRole = Role::updateOrCreate([
            'slug' => 'admin'
        ], [
            'name' => '管理员',
            'description' => '普通管理员',
            'status' => 1
        ]);

        // 为超级管理员分配所有权限
        $allPermissions = Permission::all();
        $superAdminRole->permissions()->sync($allPermissions->pluck('id'));

        // 为普通管理员分配基础权限
        $basicPermissions = Permission::whereIn('slug', [
            'view_any_admin',
            'view_admin',
            'view_any_role',
            'view_role',
            'view_any_permission',
            'view_permission',
            'view_any_login_log',
            'view_any_operation_log'
        ])->get();

        $adminRole->permissions()->sync($basicPermissions->pluck('id'));
    }
}
